package com.Book.test_1_25_springmvcbook.mapper;

import com.Book.test_1_25_springmvcbook.model.BookInfo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface BookInfoMapper {
    // 获取当前页信息
    @Select("select * from book_info where status != 0" +
            " order by id desc limit #{offset}, #{pageSize}")
    List<BookInfo> selectBookInfoByPage(Integer offset, Integer pageSize); // 拿到翻页的信息
    // 这个创不创建成对象都可以, 因为这个是内部的一个信息

    // 返回总记录数
    @Select("select count(1) from book_info where status !=0")
    Integer count();

    @Insert("insert into book_info (book_name,author,`count`,price,publish,status)" +
            "values (#{bookName},#{author},#{count},#{price},#{publish},#{status})")
    Integer insertBook(BookInfo bookInfo);

    // 修改图书
    // 先查询图书信息
    @Select("select * from book_info where id=#{id}")
    BookInfo queryBookInfoById(Integer id);

    // 修改图书
    // 此处使用 xml 的方式来修改, 不是 用注解, 目的是为了后续 删除操作做铺垫
    Integer updateBook(BookInfo bookInfo);

    // 批量删除
    // 要使用 动态 sql 了
    // 所以用 xml 方法
    Integer batchDelete(List<Integer> ids);
}
